[실기] (PART 9) 소프트웨어 개발 보안 구축
NOTE
정보처리기사 실기 PART 9 — 보안 3대 요소(기밀성·무결성·가용성)와 시큐어 코딩 등 소프트웨어 개발 보안 핵심 정리.
📌 개념
- 소프트웨어 개발 보안 3대 요소
- 기밀성 : 자원 접근
- 무결성 : 수정
- 가용성 : 자원 지속 사용
- SW 개발 보안 용어
- 자산 : 대상
- 위협 : 악영향 끼치는 사건 행위
- 취약점 : 위협이 발생하기위한 사전 조건
- 위험 : 자산 손실 피해를 가져올 가능성
- DOS 공격
- SYN 플러딩 : SYN 패킷 계속 보냄
- UDP 플러딩 : UDP 패킷 계속 보냄
- 스머프, 스머핑 : ICMP 브로드캐스트 (출발지 주소→ 대상 IP)
- 죽음의 핑 : ICMP패킷 크게 만듬
- 랜드어택 : 출발지ip, 목적지ip 같게 해서 보냄
- 티어드롭 : IP 패킷 재조합 문제 유도
- 봉크(순서번호 1), 보잉크 (1번,100번,2002번,…)
- DDOS 공격
- 핸들러 : 마스터 시스템의 역할을 수행
- 에이전트 : 공격 대상에 직접 공격
- 마스터 : 공격자에게 직접 명령을 받음
- 공격자 : 해커 컴퓨터
- 데몬 프로그램 : 에이전트 시스템의 역할을 수행하는 프로그램
- DDOS 공격 도구
- TRINO : UDP flood 서비스 거부 공격 유발
- Tribe Flood Network : UDP, SYN, ICMP 등 수행 가능
- Stacheldraht : Linux, Solaris 시스템용 멀웨어 도구
- DDOS 공격 종류
- HTTP/TCP/UDP/ICMP Traffic Flooding
- IP Flooding
- HTTP Header / Option Spoofing
- 세션 하이재킹 : 케빈 미트닉, 세션 관리 취약
- DRDoS : 반사서버
- 애플리케이션 공격
- HTTP GET 플러딩 : Cache Control Attack 공격
- Slowloris : 개행 문자열 전송 x
- RUDY Attack : Cotent-Length를 크게 설정
- Slow Read Attack : TCP 윈도 크기 낮게 설정
- Hulk DOS : URL 지속적 변경 GET 요청
- 네트워크 공격
- 스니핑 : 수동적 공격
- 네트워크 스캐너 : 탐색 도구
- 패스워드 크래킹 : 사전, 무차별, 패스워드 하이브리드, 레인보우 테이블 공격 (해시값 → 패스워드 찾기)
- IP 스푸핑 : IP 위조하여 인증된 컴퓨터 시스템인것처럼 속임
- ARP 스푸핑 : MAC주소를 위조
- ICMP Redirect : 라우터라고 알림으로써 패킷흐름 변경
- 트로이목마 : 악성 루틴이 숨어있는 프로그램
- 시스템 보안 위협
- 버퍼 오버플로우 공격
- 스택버퍼오버플로우 : 스택 영역에서 오버플로
- 힙 버퍼오버플로우 : 동적 할당되는 힙에서 오버플로
- 버퍼 오버플로우 공격 대응방안
- 스택가드 활용 : 카나리 불리는 무결성 체크용 값 이용
- 스택 쉴드 활용 : 복귀주소를 따로 저장 후 스택 값과 비교
- ASLR : 주소공간 배치 난수화
- 안전한 함수 활용
- 백도어
- 주요 시스템 공격 기법
- 포맷 스트링 공격 : printf(argv[1]) 등 사용
- 레이스 컨디션 공격 : 공유자원 동시 접근
- 키로거 공격 : 키보드 움직임 탐지
- 루트킷 : 불법적 해킹에 사용되는 기능을 제공, 프로그램의 모음
- 버퍼 오버플로우 공격
- 보안 관련 용어
- 스피어 피싱 : 이메일 발송
- 스미싱 : SMS 이용
- 큐싱 : QR
- 봇넷 : 악성 프로그램 감염된 컴퓨터 네트워크로 연결
- APT 공격 : 지속적 지능적 맞춤형 공격기법
- 공급망 공격 : 개발사의 네트워크 침투
- 제로데이 공격 : 보안 취약점 업데이트 전에 악용
- 웜 : 스스로 복제
- 악성 봇 : 해커의 명령에 의해 원격 제어
- 사이버 킬체인 : APT 공격 방어 분산석모델
- 랜섬웨어 : 파일들 암호화
- 이블 트윈 : 무선 WIfi 피싱 기법 , 핫스팟 연결 사용자 정보 탈취
- 사회공학
- 트러스트존 : 보안 구역 따로 둠
- 타이포스쿼팅 : 유사한 유명 도메인 미리 등록
- 인증 기술 유형
- 지식기반 인증 : PASSWORD
- 소지기반 인증 : 공인인증서
- 생체기반 인증 : 홍채
- 특정기반 인증 : 서명, 발걸음
- 서버 접근 통제
- 접근통제 용어
- 주체, 객체, 접근
- 서버 접근 통제 유형
- DAC (임의적 접근통제) : 주체나 그룹의 신분에 근거
- MAC (강제적 접근통제) : 접근 정보에 대하여 주체가 갖는 접근 허가 권한
- RBAC (역할 기반 접근 통제) : 역할에 기초
- 3A
- 인증 (Authentication) : 신분 검증, 식별
- 권한부여 (Authorization) : 권한과 서비스 허용
- 계정 관리(Accounting) : 리소스 사용에 대한 정보 수집 및 관리
- 접근통제 용어
- 접근 통제 보호 모델
- 벨-라파듈라 모델 (BLP) : 기밀성 강조, 미 국방부 지원 보안 모델
- 비바 모델 : 벨- 라파듈라 모델 보완한 무결성도 보장
- 벨-라파듈라 모델 (BLP) : 기밀성 강조, 미 국방부 지원 보안 모델
- 암호화
- 일방향 암호 방식 (해시 암호 방식)
- MAC : 키를 사용하는 메시지 인증코드
- MDC : 키를 사용하지 않는 변경 감지 코드
- 대칭키 암호화
- DES : 16라운드 암호화, 블록크기는 64비트, 키길이는 56비트
- SEE : 16라운드를 거쳐 128비트 암호문 블록으로 암호화
- AES : DES 보안, 128비트 블록크기, 10/12/14 라운드로 분류
- ARIA : XOR과 같은 단순한 바이트단위 연산 구성 (블록크기 128비트)
- IDEA : DES 대체, 128비트 키를 이용하여 64비트 평문을 8라운드에 거쳐 암호문 만듬
- LFSR : 이전 상태 값들의 선형 함수로 계산되는 구조
- Skipjack : 전화기와 같이 음성 암호화
- 비대칭키 암호화 알고리즘
- 디피 헬만 : 최초의 공개키
- RSA : MIT 수학 교수, 소인수 분해 사용
- ECC : PKI 기반의 RSA의 문제점 해결 (체크 다시 확인)
- EIGamal : RSA와 유사 (체크 다시 확인)
- 해시 암호화 알고리즘
- MD5 : MD4 개선
- SHA-1 : 160비트 해시값
- SHA-256/384/512
- HAS-160 : MD5, SHA1 장점 취하여 개발
- HAVAL : 메시지를 1024비트 블록으로 나눔
- 일방향 암호 방식 (해시 암호 방식)
- 암호화 전송
- IPSEC : 3계층, 인증헤더(AH)와 기밀성 보장 암호화(ESP) 이용
- SSL/TLS : 4계층과 7계층 사이에서 암호화
- SSL : NETscape사가 개발
- 특정 암호기술에 의존x
- S-HTTP
- 서버-클라이언트 전송되는 모든메세지 암호화 전송
- 입력 데이터 검증 및 표현 취약점
- XSS : 웹페이지를 열람함으로써 부적절한 스크립트가 실행
- 종류
- STORED XSS : 저장된 스크립트를 열 경우 공격하게 됨
- REFLACTED XSS : 이메일 전송 URL클릭시 반사서버처럼 이용당하게됨
- DOM XSS : DOM 기반 이메일전송
- 종류
- CSRF : 사용자 의지와는 무관하게 공격자가 의도한 행위를 함
- SQL삽입 : 악의적인 SQL구문을 삽입
- XSS : 웹페이지를 열람함으로써 부적절한 스크립트가 실행
- 네트워크 보안 솔루션
- 방화벽 : 기업 내부, 외부 간 트래픽 모니터링 및 차단
- 웹 방화벽 (WAF) : 웹 공격 탐지
- 네트워크 접근 제어 (NAC) : 단말기가 내부 네트워크 접속 시도시
- 침입탐지시스템(IDS)
- 침입방지시스템(IPS)
- 무선침입방지시스템 (WIPS)
- 통합 보안시스템(UTM)
- 가상사설망(VPN) : 터널링 기술 (전용망)
- SIEM : 로그 분석을 통한 보안 위협 징후 파악
- ESM : 로그를 통합해서 분석 (통합 관리 솔루션)
- 시스템 보안 솔루션
- 스팸차단솔루션 : 메일서버 앞단에 위치하여 프록시메일서버
- 보안운영체제
- 콘텐츠 유출 방지 솔루션
- 보안USB
- DLP (데이터 유출방지)
- DRM (디지털 저작권 관리)
- 소프트웨어 개발 보안 테스트의 유형
- 정적 분석 : SW 실행하지 않고 보안 약점 분석
- 동적 분석 : SW 실행환경에서 보안 약점 분석
- 비즈니스 연속성 계획 (BCP)
- 재해, 장애, 재난으로부터 위기관리 (비즈니스 연속성)
- 비즈니스 연속성 계획 관련 주요 용어
- BIA : 장애나 재해로 인한 손실이 발생했다 가정하고, 영향도 및 손실 평가 조사
- RTO : 업무중단 ~ 업부 복구되어 다시 가동 될때까지의 시간
- RPO : 중단 되었다 복구될 때 데이터의 손실 허용 시점
- DRP : 재해로 인한 장기간 운영 불가능할경우 대비한 재난 복구 계획
- DRS : 재해복구 계획을 원활히 지원하기 위해 평상시에 확보하여 지속적인 관리체계가 통합된 재해복구센터
- DRS 유형
- Mirror 사이트 : 실시간 동기 사이트
- Hot 사이트 : 4시간 이내 복구
- Warm 사이트 : 수일, 수주 복구기간, 중요 자원만 부분적 보유
- Cold 사이트 : 테이터만 원격지 보관 , 수주 ~ 수개월
- DRS 유형
- 보안용어
- 부채널 공격 : 내부 비빌 정보를 부 채널에서 획득
- 드라이브 바이 다운로드 : 악성 스크립트 설치, 사용자 접속시 동의없이 실행됨
- 워터링 홀 : 잘 방문하는 웹사이트에 악성코드를 심음
- 비즈니스 스캠 : 기업 이메일 계정 도용하여 거래 대금 가로챔
- 하트 블리드 : OPENSSL 암호화 라이브러리의 하트비트 모듈에서 데이터 길이에 대한 검증을 수행하지 않는 취약점 이용
- 크라임 웨어 : 금융정보 탈취
- 토르 네트워크 : 익명으로 인터넷 사용
- MITM 공격 : 네트워크 통신 내용 도청 및 조작
- DNS 스푸핑 공격 : DNS응답을 조작 및 DNS 캐시정보 조작
- 포트 스캐닝
- 디렉토리 리스팅 취약점 : 인덱싱 기능이 활성화 되있을 경우, 서버 내의 디렉토리 및 파일 목록 확인 가능
- 리버스 쉘 공격 : 클라이언트가 타깃 서버의 쉘 획득
- 익스플로잇 : 취약점을 이용하여 공격자가 의도한 동작이나 명령을 실행
- 스턱스넷 공격 : 산업기반시설의 제어 시스템에 침투
- 크리덴셜 스터핑 : 사용자 계정 탈취 → 다른곳에서 유출된 아이디/패스워드
- 보안 공격 대응 관련 용어
- 허니팟 : 해커에게 일부러 노출하여 유인
- OWASP : 10가지 취약점
- 핑거프린팅 : 콘텐츠 에 저작권정보와 구매한 사용자 정보 삽입
- 워터마킹
- 이상금융거래탐지시스템 : 의심거래, 이상 거래 차단
- CC : 보안 기능 과 보증에 대한 평가
- 사이버 위협정보 분석 공유 시스템
- 장착형 인증 모듈 : 인증용 라이브러리
- CVE : MITRE에서 발표한 보안취약점 식별자 목록
- CWE : MITRE가 발표한 소스 코드 취약점 정의한 데이터베이스
- ISMS : 조직의 정보보호 관리 절차와 과정을 체계적 수립
- PIMS : 개인정보보호 활동을 구축했는지 점검, 평가하여 기업에게 부여
- PIA : 개인정보 취급이 수반되는 정보시스템 중대한 변경시 개인정보에 미치는 영향에 사전에 조사하여 미리 개선방안을 도출하는 절차
- TKIP : 임시 키 무결성 프로토콜 ( WIFI 에서 사용되었던 WEP암호화 표준을 대체)